package com.klxedu.ms.gateway.security.authentication;

/**
 * 
 * Title: IAuthenticatedUser<br>
 * Description: 授权对象类 <br>
 * Copyright @ 2011~2018 Goldgov .All rights reserved.<br>
 * 
 * @author GuoR
 * @createDate 2018年7月18日
 */
public interface IAuthenticatedUser {
	/**
	 * 设置用户密码，用于进行登录验证
	 * 
	 * @param password
	 *            用户保存在数据库中的密码
	 */
	public void setPassword(String password);

	/**
	 * 获取扩展账号密码
	 * 
	 * @return 返回账号密码数据
	 */
	public String getPassword();

	/**
	 * 获取扩展账号信息
	 * 
	 * @return 扩展账号对象
	 */
	public Object getExtendAccountInfo();

	/**
	 * 设计扩展账号信息对象
	 * 
	 * @param extendAccountInfo
	 *            扩展账号对象
	 */
	public void setExtendAccountInfo(Object extendAccountInfo);

	/**
	 * 获取账号的部分ID
	 * 
	 * @return 返回当前账号所在部门ID
	 */
	public String getDepartID();

	/**
	 * 获取账号的用户名
	 * 
	 * @return 返回当前账号的用户名
	 */
	public String getUserName();

	/**
	 * 获取账号的唯一标识
	 * 
	 * @return 返回当前账号的唯一标识
	 */
	public String getEntityID();

	/**
	 * 获取账号的登录标识
	 * 
	 * @return 返回当前账号的登录标识
	 */
	public String getLoginID();
	
	/**
	 * 获取权限编码
	 * @return
	 */
	public String[] getScopeCodes();
	/**
	 * 获取所属单位权限编码
	 * @return
	 */
	public String[] getUnitScopeCodes();

	/**
	 * 获取系统身份编码
	 * @return
	 */
	public String[] getSysIdentityCodes();
	
	/**
	 * 获取用户名称
	 * @return
	 */
	public String getName();
	
	/**
	 * 获取账号ID
	 * @return
	 */
	public String getAccountID();
	
	/**
	 * 获取账号状态
	 * @return
	 */
	public int getState();
}
